package com.ms.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 比赛实体类
 * 与数据库表 `Game` 一一对应
 */
@Data // Lombok：生成 getter、setter、toString、hashCode、equals 等方法
@NoArgsConstructor // Lombok：生成无参构造器
@AllArgsConstructor // Lombok：生成全参构造器
@TableName("game") // MyBatis-Plus：指定关联的数据库表名
public class Game {

    /**
     * 比赛id（主键，自动递增）
     * @TableId：指定主键策略，IdType.AUTO 对应数据库 auto_increment
     */
    @TableId(value = "games_id", type = IdType.AUTO)
    private Integer gamesId;



    /**
     * 申请id
     * @TableField：指定数据库字段名，确保与表中字段一一对应
     */
    @TableField("qua_id")
    private Integer quaId;

    /**
     * 组织id
     */
    @TableField("or_id")
    private Integer orId;

    /**
     * 比赛名称
     */
    @TableField("game_name")
    private String gameName;

    /**
     * 创建时间（datetime 类型，映射为 java.util.Date）
     */
    @TableField("create_time")
    private Date createTime;

    /**
     * 报名时间（date 类型，映射为 java.sql.Date）
     */
    @TableField("app_time")
    private Date appTime;

    /**
     * 准备阶段（date 类型）
     */
    @TableField("ready_time")
    private Date readyTime;

    /**
     * 开始时间（date 类型）
     */
    @TableField("start_time")
    private Date startTime;

    /**
     * 结束时间（date 类型）
     */
    @TableField("end_time")
    private Date endTime;

    /**
     * 简介（text 类型，映射为 String）
     */
    @TableField("synopsis")
    private String synopsis;

    /**
     * 附件（varchar 类型）
     */
    @TableField("attachment")
    private String attachment;
}